It is well known for a client computer or application server to request download of a file from a file server. In one mode of operation, the requester establishes a connection with the file server, identifies a file, specifies a start location for a download, and requests download of the file. In response (assuming the file server will permit the download), the file server begins downloading the file from the specified start location. If the file is lengthy, and the communication bandwidth is limited, the download may take an appreciable time to complete. To alleviate this problem, the requester can establish multiple connections with the file server, and for each connection, identify the file and a different, staggered start location for the respective download and request download from the respective start location. For example, for one connection, the requester can request download of the file beginning at start location 0, for another connection the requester can request download of the same file beginning at start location 5000, for another connection the requester can request download of the same file beginning at start location 10,000. Generally, this will expedite the download, especially if there are parallel communication paths from the file server to the requester. Ideally, when establishing multiple connections for download of the same file in segments in parallel, the requester will specify the segment length of each download request, and the segment length for each connection will extend to the start location of the next download request. If the requester specifies the segment length of the download for a connection, the file server downloads the specified segment beginning at the specified start location. However, if the requester does not specify the length of the download, the file server will begin downloading at the start location and continue downloading until receiving an “end connection” notification from the requester. This will result in wasted (redundant/overlapping) download when the file server does not receive the “end connection” notification until after the file server downloads a portion of the file that overlaps the download from the next connection request. For example, if the first connection request, starting at location 0, results in download of the first 6,000 bytes, this will overlap the next connection request which starts at location 5,000, resulting in wasted/redundant download of 1,000 bytes, i.e. bytes 5,000 to 6,000. In practice, the total amount of overlap during transfer of a file can be much greater.
Accordingly, an object of the present invention is to avoid redundant downloads of parts of a file when the file is being downloaded in parallel pursuant to multiple download requests, and the requester does not specify the length of the download for each request.